﻿using System;
using Abot.Core;
using Abot.Poco;
using Crawler.Domain;

namespace Crawler.Abot.Configurations
{
	interface IConfigurator
	{
		TorrentSource ForType { get; }
		ICrawlDecisionMaker DecisionMaker { get; }
		IThreadManager ThreadManager { get; }
		IScheduler Scheduler { get; }
		IPageRequester HttpRequester { get; }
		IHyperLinkParser HyperLinkParser { get; }
		IMemoryManager MemoryManager { get; }
		IDomainRateLimiter DomainRateLimiter { get; }
		IRobotsDotTextFinder RobotsDotTextFinder { get; }
		Uri RootUri { get; }
		CrawlConfiguration BuildConfiguration();
	}
}